import axios from 'axios'
import { ElMessage } from 'element-plus'
import { logout } from '@/common'
const instance = axios.create({
    baseURL: "/api",
    timeout: 5000
})

instance.interceptors.request.use((config) => {
    // console.log("请求拦截器");
    let token = localStorage.getItem("token")
    // 判断有没有token 如果有需要带上
    if (token) {
        if (config.headers) {
            config.headers["Authorization"] = token
        }
    }
    return config
}, (error) => Promise.reject(error))

instance.interceptors.response.use((response) => {
    // console.log("响应拦截器");
    // 请求状态码是200进这个函数
    // 密码或者账号错误都经过这里  属于业务状态码
    const data = response.data as IResponse<any>
    if (data.code == 401) {
        logout(undefined,undefined)

    } else if (data.code !== 200) {
        ElMessage.error(data.message)
    }
    return response.data
}, (error) => {

    //请求失败的提示 路径错误 或者请求超时
    ElMessage.error('请求失败，请联系管理员' + error.message)
    Promise.reject(error)
})

export default instance